package com.zhy.sping.service.impl;

import com.zhy.sping.config.RedisKeyConfig;
import com.zhy.sping.dao.CourseDao;
import com.zhy.sping.dto.CourseAddDto;
import com.zhy.sping.dto.CourseTopDto;
import com.zhy.sping.service.intf.CourseService;
import com.zhy.sping.util.RedissionUtil;
import com.zhy.sping.vo.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class CourseServiceImpl implements CourseService {
    @Autowired
    private CourseDao dao;
    @Override
    public R save(CourseAddDto dto) {
        return null;
    }

    @Override
    public R queryList() {
        return null;
    }

    @Override
    public R queryHost() {
        //校验的时候先去检查缓存
        if (RedissionUtil.exists(RedisKeyConfig.KEY_COURSE_TOP)){
            //有的话直接返回
            return R.ok("ok",RedissionUtil.getZSet(RedisKeyConfig.KEY_COURSE_TOP));
        }else {
            //缓存不存在 或许是第一次或许是失效了
            //没有的话   先去查找数据库
            List<CourseTopDto> list = dao.selectTop();
            //然后添加缓存中
            RedissionUtil.addSets(RedisKeyConfig.KEY_COURSE_TOP,list);
            //为缓存的key设置有效期
            RedissionUtil.expire(RedisKeyConfig.KEY_COURSE_TOP,RedisKeyConfig.KEY_COURSE_TOP_TIME);

            return R.ok("ok",list);
        }

    }

    @Override
    public R queryDetil(int id) {
        return null;
    }
}
